¿Por qué console.log (10 < 14 < 50) es verdadero pero console.log (10 > 7 > 2) es falso? ¿Por qué el primero da verdadero y el segundo da falso?
Funciona de esa manera:
Primero calcula el lado izquierdo (10 < 14) => devuelve True , que también es 1 .
Luego calcula el lado derecho: (True < 50) que es (1 < 50) y esto también es True .
Por otro lado, (10 > 7) => True = 1 , pero (True > 2) que es (1 > 2) es False .
Si prueba: console.log(10 < 14 == 1) verá que también es True .
Así no es como verificaría un intervalo en JS.
Su código se interpretaría de izquierda a derecha según la precedencia del operador . Los operadores de comparación son operadores binarios , toman una expresión de la izquierda y una expresión de la derecha
10 < 15 < 50 // To true < 50 // To 1 < 50 // And 10 > 7 > 2 // To true > 2 // To 1 > 2Deberías hacer:
console.log(14 < 10 && 14 <50) // console.log(7 < 10 && 7 > 2)